home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / lib / pm-utils / module.d / uswsusp < prev   
Text File  |  2009-10-06  |  3KB  |  109 lines

  1. #!/bin/sh
  2.  
  3. # disable processing of 90chvt and 99video.
  4. # s2ram and s2disk handle all this stuff internally.
  5. uswsusp_hooks()
  6. {
  7.     disablehook 99video "disabled by uswsusp"
  8. }
  9.  
  10. # Since we disabled 99video, we need to take responsibility for proper
  11. # quirk handling.  s2ram handles all common video quirks internally,
  12. # so all we have to do is translate the HAL standard options to s2ram options.
  13. uswsusp_get_quirks()
  14. {
  15.     OPTS=""
  16.     ACPI_SLEEP=0
  17.     for opt in $PM_CMDLINE; do
  18.         case "${opt##--quirk-}" in # just quirks, please
  19.             dpms-on)        ;; # no-op
  20.             dpms-suspend)        ;; # no-op
  21.             radeon-off)        OPTS="$OPTS --radeontool" ;;
  22.             reset-brightness)  ;; # no-op
  23.             s3-bios)        ACPI_SLEEP=$(($ACPI_SLEEP + 1)) ;;
  24.             s3-mode)        ACPI_SLEEP=$(($ACPI_SLEEP + 2)) ;;
  25.             vbe-post)        OPTS="$OPTS --vbe_post" ;;
  26.             vbemode-restore)   OPTS="$OPTS --vbe_mode" ;;
  27.             vbestate-restore)  OPTS="$OPTS --vbe_save" ;;
  28.             vga-mode3)        ;; # no-op
  29.             save-pci)          OPTS="$OPTS --pci_save" ;;
  30.             none)            QUIRK_NONE="true" ;;
  31.             *) continue ;;
  32.         esac
  33.     done
  34.     [ $ACPI_SLEEP -ne 0 ] && OPTS="$OPTS --acpi_sleep $ACPI_SLEEP"
  35.     # if we were told to ignore quirks, do so.
  36.     # This is arguably not the best way to do things, but...
  37.     [ "$QUIRK_NONE" = "true" ] && OPTS=""
  38. }
  39.  
  40. # Since we disabled 99video, we also need to handle displaying
  41. # help info for the quirks we handle.
  42. uswsusp_help()
  43. {
  44.     echo  # first echo makes it look nicer.
  45.     echo "s2ram video quirk handler options:"
  46.     echo
  47.     echo "  --quirk-radeon-off"
  48.     echo "  --quirk-s3-bios"
  49.     echo "  --quirk-s3-mode"
  50.     echo "  --quirk-vbe-post"
  51.     echo "  --quirk-vbemode-restore"
  52.     echo "  --quirk-vbestate-restore"
  53.     echo "  --quirk-save-pci"
  54.     echo "  --quirk-none"
  55. }
  56.  
  57. # This idiom is used for all sleep methods.  Only declare the actual
  58. # do_ method if:
  59. # 1: some other sleep module has not already done so, and
  60. # 2: this sleep method can actually work on this system.
  61. #
  62. # For suspend, if SUSPEND_MODULE is set then something else has already
  63. # implemented do_suspend.  We could just check to see of do_suspend was
  64. # already declared using command_exists, but using a dedicated environment
  65. # variable makes it easier to debug when we have to know what sleep module
  66. # ended up claiming ownership of a given sleep method.
  67. if [ -z "$SUSPEND_MODULE" ] && command_exists s2ram && \
  68.     ( grep -q mem /sys/power/state || \
  69.         ( [ -c /dev/pmu ] && check_suspend_pmu; ); ); then
  70.     SUSPEND_MODULE="uswsusp"
  71.     do_suspend()
  72.     {
  73.         uswsusp_get_quirks
  74.         s2ram --force $OPTS
  75.     }
  76.     if [ "$METHOD" = "suspend" ]; then
  77.         add_before_hooks uswsusp_hooks
  78.         add_module_help uswsusp_help
  79.     fi
  80. fi
  81.  
  82. if [ -z "$HIBERNATE_MODULE" ] && \
  83.     [ -f /sys/power/disk ] && \
  84.     grep -q disk /sys/power/state && \
  85.     [ -c /dev/snapshot ] &&
  86.     command_exists s2disk; then
  87.     HIBERNATE_MODULE="uswsusp"
  88.     do_hibernate()
  89.     {
  90.         s2disk
  91.     }
  92. fi
  93.  
  94. if [ -z "$SUSPEND_HYBRID_MODULE" ] && 
  95.     grep -q mem /sys/power/state && \
  96.     command_exists s2both && \
  97.     check_hibernate; then
  98.     SUSPEND_HYBRID_MODULE="uswsusp"
  99.     do_suspend_hybrid()
  100.     {
  101.         uswsusp_get_quirks
  102.         s2both --force $OPTS 
  103.     }
  104.     if [ "$METHOD" = "suspend_hybrid" ]; then
  105.         add_before_hooks uswsusp_hooks
  106.         add_module_help uswsusp_help
  107.     fi
  108. fi
  109.